perm filename COMT.PAL[HAL,HE]3 blob
sn#161913 filedate 1975-05-29 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 Test of condition monitors
C00004 00003 SMALL TEST OF ARITHMETIC
C00005 00004 test of small blocks
C00006 ENDMK
C⊗;
; Test of condition monitors
XPRINT
L45 ;Say hello
XCMMAK
20 ;CM at 20
L30 ;Code at L30 for checker
L31 ;Code at L31 for body
XMVAR ;
10 ;X
12 ;y
0
XPUSH ;X ← L41
L41
XCHNGE
10
XPUSH ;Y ← L41.5 (= 0)
L41.5
XCHNGE
12
XCMENB ;Enable checker
20
L32: XGTVAL ;X ← X - 1
10 ;
XCOPY ;
0
XPRNTS ;Say what X is
XPUSH ;
L43 ;Push 1
XSSUB ;Subtract
XCHNGE ;
10 ;
XGTVAL ;
12 ;Y=0?
XJUMPC ;
2 ;
L32 ;If so, loop
XCMDEST ;else get rid of checker
20 ;
0
XTERMINATE;and go away
L30: XCMSKED ;Checker body
XPRINT ;Say "."
L46 ;
XGTVAL ;X≤0?
10 ;
XJUMPC ;
7 ;if GT then jump
L30 ;
XCMTRIG ;Yes. trigger
XJUMP ;
L30 ;
L31: XCMBWT ;Wait for signal
XPRINT
L44 ;Say "zero"
XPUSH ;
L41 ;SET Y ← 10.0
XCHNGE ;
12 ;
XJUMP ;
L31 ;
;data area
L41: 41040 ;10.0
0
L41.5: 0 ;0.0
0
L42: ASCIE </
DECREMENTING/>
L43: 40200 ;1.0
0
L44: ASCIE </
ZERO/>
L45: ASCIE </
TEST OF CONDITION CHECKERS
/>
L46: ASCIE </./>
; SMALL TEST OF ARITHMETIC
COMMENT ⊗ Save the following for another time.
L1: XMVAR
10 ;X
12 ;Y
14 ;Z
16 ;W
0
XPUSH ;X ← L103
L103
XCHNGE
10
XPUSH ;Y ← L105
L105
XCHNGE
12
XPUSH ;Z ← L107
L107
XCHNGE
14
XGTVAL ;W ← X . Y . Z
10
XGTVAL
12
XGTVAL
14
L2: XVMAKE
XCHNGE
16
XTERMINATE
L103: ;VECTOR(44.5, 44.5, 44.5, 2)
41462
0
41462
0
41462
0
40400
0
L105: ;VECTOR(10, 10, 10, 1)
41040
0
41040
0
41040
0
40200
0
L107: ;VECTOR(20, 20, 20, 1)
41240
0
41240
0
41240
0
40200
0
⊗ end of commented out portion
; test of small blocks
COMMENT ⊗ Save for later
XMVAR ;
10 ;X
0
XPUSH ;X ← L41
L41
XCHNGE
10
L32: XPRINT
L42 ;Say "decrementing"
XGTVAL ;X ← X - 1
10 ;
XPUSH ;
L43 ;Push 1
XSSUB ;Subtract
XCHNGE ;
10 ;
XJUMP ;
L32 ;If so, loop
L41: 41040 ;10.0
0
L41.5: 0 ;0.0
0
L42: ASCIE </
DECREMENTING/>
L43: 40200 ;1.0
0
L44: ASCIE </
ZERO/>
⊗ end of commented out part